package com.sky.vo;
/**
 * 1.当前模块名：sky-pojo
 *   模块作用：存放视图对象(Value Object)，用于Controller层返回给前端的结构化数据
 * 2.当前包名：com.sky.vo
 *   包作用：封装Controller层返回的视图数据模型（Value Object）
 * 3.当前类名：OrderReportVO
 *   类作用：订单统计报表视图对象，支持时间序列数据展示
 */
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * OrderReportVO：订单统计报表视图对象
 * 知识点说明：
 * 1. 时间序列格式：使用逗号分隔的字符串存储日期序列（前端需解析为数组）
 * 2. 数据一致性：确保日期序列与数据序列长度匹配
 * 3. 完成率计算：有效订单数/订单总数（需处理除零异常）
 * 4. 数据压缩：字符串格式减少网络传输量
 * 5. 可视化支持：前端可直接解析为图表数据
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class OrderReportVO implements Serializable {

    //日期，以逗号分隔，例如：2022-10-01,2022-10-02,2022-10-03
    private String dateList;

    //每日订单数，以逗号分隔，例如：260,210,215
    private String orderCountList;

    //每日有效订单数，以逗号分隔，例如：20,21,10
    private String validOrderCountList;

    //订单总数
    private Integer totalOrderCount;

    //有效订单数
    private Integer validOrderCount;

    //订单完成率
    private Double orderCompletionRate;

}
